// utils/dataParser.js
const { parsePositionFile } = require('./positionParser');
const { positionNameKeyMap } = require('./nameKeyMap');

// 解析Excel文件并组合数据
async function parseExcelFiles(positionFilePath, year, cityName, province) {
  // 解析职位表
  const positionData = await parsePositionFile(positionFilePath);
  
  // 获取职位表实际表头
  const positionHeaders = positionData.length > 0 ? Object.keys(positionData[0]) : [];
  
  // 过滤出实际存在的字段映射
  const availablePositionMappings = positionNameKeyMap.filter(mapping =>
    positionHeaders.some(header => new RegExp(mapping.name, 'i').test(header))
  );
  
  // 转换数据格式
  const data = positionData.map(item => {
    const result = {};
    availablePositionMappings.forEach(mapping => {
      // 在 item 的字段中找第一个包含 mapping.name 的 key
      const matchedKey = Object.keys(item).find(key => key.includes(mapping.name));
      // 如果找到了，就取值，否则填空
      result[mapping.key] = matchedKey && item[matchedKey] != null ? item[matchedKey] : '';
    });
  
    return result;
  });
  
  
  return {
    province: province,
    date: year,
    city: cityName,
    positionNameKeyMap: availablePositionMappings,
    data: data
  };
}

module.exports = {
  parseExcelFiles
};